package com.example.demo.service.impl;

import com.example.demo.Util.Result;
import com.example.demo.Util.ResultUtil;
import com.example.demo.mapper.ClassMap;
import com.example.demo.po.Class;
import com.example.demo.po.dto.ClassParam;
import com.example.demo.service.ClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.thymeleaf.util.StringUtils;

import java.util.List;

@Service
public class ClassServiceImpl implements ClassService {
    @Autowired
    ClassMap classMap;

    public boolean CheckParam(ClassParam _class){
        if(StringUtils.isEmpty(_class.getName())){
            return false;
        }


        return true;
    }

    @Override
    public Result SaveClass(ClassParam _class) {

        if(CheckParam(_class)==false){
            return ResultUtil.fail("缺少名称参数");
        }


        List<Class>  ClassList = classMap.GetClassByName(_class.getName());

        // 验证是否存在同名
        if(ClassList.size()==1&& ClassList.get(0).getId() !=_class.getId()){
            return ResultUtil.fail("有重复名称的班级");
        }

        classMap.SaveClass(_class);
      return ResultUtil.success(_class);
    }

    @Override
    public void DeleteClass(int id) {

    }

    @Override
    public Result UpdateClass(ClassParam _class) {
        if(CheckParam(_class)==false){
            return ResultUtil.fail("缺少名称参数");
        }


        List<Class>  ClassList = classMap.GetClassByName(_class.getName());

        // 验证是否存在同名
        if(ClassList.size()==1&& ClassList.get(0).getId() !=_class.getId()){
            return ResultUtil.fail("有重复名称的班级");
        }
         classMap.UpdateClass(_class);
        return ResultUtil.success("修改成功");
    }

    @Override
    public List<Class> GetClass() {

        return classMap.GetClass();
    }

    @Override
    public List<Class> GetClassByName(String name) {
        return  null;
    }
}
